package com.norns.torque.utils

import android.content.Context

class DisplayUtil {
    companion object {
        /**
         * 将px值转换为dip或dp值，保证尺寸大小不变
         *
         * @param pxValue
         * （DisplayMetrics类中属性density）
         * @return
         */
        fun px2dip(context: Context, pxValue: Float): Int {
            val scale: Float = context.getResources().getDisplayMetrics().density
            return (pxValue / scale + 0.5f).toInt()
        }

        /**
         * 将dip或dp值转换为px值，保证尺寸大小不变
         *
         * @param dipValue
         * （DisplayMetrics类中属性density）
         * @return
         */
        fun dip2px(context: Context, dipValue: Float): Int {
            val scale: Float = context.getResources().getDisplayMetrics().density
            return (dipValue * scale + 0.5f).toInt()
        }

        /**
         * 将px值转换为sp值，保证文字大小不变
         *
         * @param pxValue
         * （DisplayMetrics类中属性scaledDensity）
         * @return
         */
        fun px2sp(context: Context, pxValue: Float): Int {
            val fontScale: Float = context.getResources().getDisplayMetrics().scaledDensity
            return (pxValue / fontScale + 0.5f).toInt()
        }

        /**
         * 将sp值转换为px值，保证文字大小不变
         *
         * @param spValue
         * （DisplayMetrics类中属性scaledDensity）
         * @return
         */
        fun sp2px(context: Context, spValue: Float): Int {
            val fontScale: Float = context.getResources().getDisplayMetrics().scaledDensity
            return (spValue * fontScale + 0.5f).toInt()
        }
    }
}